﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using MySql.Data.MySqlClient;
using BE;
using BL;
namespace UI.DireccionAcademica
{
    public partial class frmInscripcionExamenA : System.Web.UI.Page
    {

        private Reporte rptreporte = new Reporte(); 
        protected void Page_Load(object sender, EventArgs e)
        {


            if (!IsPostBack)
            {
                llenaDepartamento();
                llenaDepartamentoColegio();
                llenaDepartamentoDireccion();

                llenaProvincia();
                llenaProvinciaColegio();
                llenaProvinciaDireccion();

                llenaDistrito();
                llenaDistritoColegio();
                llenaDistritoDireccion();

            }

        }

       
        void llenaDistritoDireccion() //residnecia actual
        {

            ddlDistritoD.DataSource = ListaDistrito3();
            ddlDistritoD.DataTextField = "descripcion";
            ddlDistritoD.DataValueField = "Id_Distrito";
            ddlDistritoD.DataBind();

        }


        void llenaDistritoColegio()
        {

            ddlDistritoColegio.DataSource = ListaDistrito2();
            ddlDistritoColegio.DataTextField = "descripcion";
            ddlDistritoColegio.DataValueField = "Id_Distrito";
            ddlDistritoColegio.DataBind();

        }

        void llenaDistrito() // distrito nacimiento
        {

            ddlDistrito.DataSource = ListaDistrito();
            ddlDistrito.DataTextField = "descripcion";
            ddlDistrito.DataValueField = "Id_Distrito";
            ddlDistrito.DataBind();



        }
        private DataTable ListaDepartamento()
        {

            DataTable dato = new DataTable();
            MySqlCommand cmd = new MySqlCommand();
            MySqlDataAdapter adap;
            string cadena = "server=ipnm.edu.pe; Database=ipnmedup_campusvirtual;UId=ipnmedup_admin;Password=40365101; ";
            MySqlConnection conex = new MySqlConnection();
            conex.ConnectionString = cadena;
            try
            {
                conex.Open();
                cmd.CommandText = "sp_DATA_UBIGEO_ListaDepartamento";
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandTimeout = 3600;
                cmd.Connection = conex;

                adap = new MySqlDataAdapter(cmd);
                adap.Fill(dato);
                conex.Close();
                return dato;

            }
            catch (Exception)
            {

                throw;
            }

            finally
            {

                conex.Close();

            }

        }
        private DataTable ListaProvincia()
        {

            DataTable dato = new DataTable();
            MySqlCommand cmd = new MySqlCommand();
            MySqlDataAdapter adap;
            string cadena = "server=ipnm.edu.pe; Database=ipnmedup_campusvirtual;UId=ipnmedup_admin;Password=40365101; ";
            MySqlConnection conex = new MySqlConnection();
            conex.ConnectionString = cadena;
            try
            {
                conex.Open();
                cmd.CommandText = "sp_Data_Ubigeo_ListaProvincia";
                cmd.Parameters.AddWithValue("@in_Departamento", ddlDepartamento.SelectedValue);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandTimeout = 3600;
                cmd.Connection = conex;

                adap = new MySqlDataAdapter(cmd);
                adap.Fill(dato);
                conex.Close();
                return dato;

            }
            catch (Exception)
            {

                throw;
            }

            finally
            {

                conex.Close();

            }

        }

        private DataTable ListaProvincia2()
        {

            DataTable dato = new DataTable();
            MySqlCommand cmd = new MySqlCommand();
            MySqlDataAdapter adap;
            string cadena = "server=ipnm.edu.pe; Database=ipnmedup_campusvirtual;UId=ipnmedup_admin;Password=40365101; ";
            MySqlConnection conex = new MySqlConnection();
            conex.ConnectionString = cadena;
            try
            {
                conex.Open();
                cmd.CommandText = "sp_Data_Ubigeo_ListaProvincia";
                cmd.Parameters.AddWithValue("@in_Departamento", ddlDepartamentoColegio.SelectedValue);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandTimeout = 3600;
                cmd.Connection = conex;

                adap = new MySqlDataAdapter(cmd);
                adap.Fill(dato);
                conex.Close();
                return dato;

            }
            catch (Exception)
            {

                throw;
            }

            finally
            {

                conex.Close();

            }

        }

        private DataTable ListaProvincia3()
        {

            DataTable dato = new DataTable();
            MySqlCommand cmd = new MySqlCommand();
            MySqlDataAdapter adap;
            string cadena = "server=ipnm.edu.pe; Database=ipnmedup_campusvirtual;UId=ipnmedup_admin;Password=40365101; ";
            MySqlConnection conex = new MySqlConnection();
            conex.ConnectionString = cadena;
            try
            {
                conex.Open();
                cmd.CommandText = "sp_Data_Ubigeo_ListaProvincia";
                cmd.Parameters.AddWithValue("@in_Departamento", ddlDepartamentoD.SelectedValue);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandTimeout = 3600;
                cmd.Connection = conex;

                adap = new MySqlDataAdapter(cmd);
                adap.Fill(dato);
                conex.Close();
                return dato;

            }
            catch (Exception)
            {

                throw;
            }

        }

        private DataTable ListaDistrito()
        {

            DataTable dato = new DataTable();
            MySqlCommand cmd = new MySqlCommand();
            MySqlDataAdapter adap;
            string cadena = "server=ipnm.edu.pe; Database=ipnmedup_campusvirtual;UId=ipnmedup_admin;Password=40365101; ";
            MySqlConnection conex = new MySqlConnection();
            conex.ConnectionString = cadena;
            try
            {
                conex.Open();
                cmd.CommandText = "sp_Data_Ubigeo_ListaDistrito";
                cmd.Parameters.AddWithValue("@in_Departamento", ddlDepartamento.SelectedValue);
                cmd.Parameters.AddWithValue("@in_Provincia", ddlProvincia.SelectedValue);
                cmd.CommandTimeout = 3600;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Connection = conex;

                adap = new MySqlDataAdapter(cmd);
                adap.Fill(dato);
                conex.Close();
                return dato;

            }
            catch (Exception ex)
            {

                throw ex;
            }

        }

        private DataTable ListaDistrito2()
        {

            DataTable dato = new DataTable();
            MySqlCommand cmd = new MySqlCommand();
            MySqlDataAdapter adap;
            string cadena = "server=ipnm.edu.pe; Database=ipnmedup_campusvirtual;UId=ipnmedup_admin;Password=40365101; ";
            MySqlConnection conex = new MySqlConnection();
            conex.ConnectionString = cadena;
            try
            {
                conex.Open();
                cmd.CommandText = "sp_Data_Ubigeo_ListaDistrito";
                cmd.Parameters.AddWithValue("@in_Departamento", ddlDepartamentoColegio.SelectedValue);
                cmd.Parameters.AddWithValue("@in_Provincia", ddlProvinciaColegio.SelectedValue);
                cmd.CommandTimeout = 3600;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Connection = conex;

                adap = new MySqlDataAdapter(cmd);
                adap.Fill(dato);
                conex.Close();
                return dato;

            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                conex.Close();
                cmd.Dispose();
            }

        }




        private DataTable ListaDistrito3()
        {

            DataTable dato = new DataTable();
            MySqlCommand cmd = new MySqlCommand();
            MySqlDataAdapter adap;
            string cadena = "server=ipnm.edu.pe; Database=ipnmedup_campusvirtual;UId=ipnmedup_admin;Password=40365101; ";
            MySqlConnection conex = new MySqlConnection();
            conex.ConnectionString = cadena;
            try
            {
                conex.Open();
                cmd.CommandText = "sp_Data_Ubigeo_ListaDistrito";
                cmd.Parameters.AddWithValue("@in_Departamento", ddlDepartamentoD.SelectedValue);
                cmd.Parameters.AddWithValue("@in_Provincia", ddlProvinciaD.SelectedValue);
                cmd.CommandTimeout = 3600;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Connection = conex;

                adap = new MySqlDataAdapter(cmd);
                adap.Fill(dato);
                conex.Close();
                return dato;

            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                conex.Close();
                cmd.Dispose();
            }

        }



        protected void btnGrabar_Click(object sender, EventArgs e)
        {


            PreMatricula_BE objBE = new PreMatricula_BE();
            PreMatricula_BL objBL = new PreMatricula_BL();

            objBE.Apellido_Paterno = txtApPaterno.Text.Trim();
            objBE.Apellido_Materno = txtApMaterno.Text.Trim();
            objBE.Nombres = txtNombres.Text.Trim();
            objBE.Colegio = txtColegio.Text.Trim();
            objBE.DNI = txtDNI.Text.Trim();
            objBE.Correo = txtEmail.Text.Trim();
            objBE.FECHA_NACIMIENTO = Convert.ToDateTime(txtFechaNac.Text.Trim());
            objBE.Id_Departamento=Convert.ToInt16(ddlDepartamento.SelectedValue);// lugar donde nació
            objBE.Id_Provincia = Convert.ToInt16(ddlProvincia.SelectedValue);// lugar donde nació
            objBE.Id_Distrito=Convert.ToInt16(ddlDistrito.SelectedValue); // lugar donde nació
            objBE.Direccion = txtDireccionNacimiento.Text.Trim();
            objBE.Id_EstadoCivil = Convert.ToInt16(ddlEstadoCivil.SelectedValue);
            objBE.Numero_Hijos = ddlNumeroHijos.SelectedItem.Text;
            objBE.Telefono_Fijo = txtTelefono.Text;
            objBE.Celular = txtCelular.Text;
            objBE.Apellido_PaternoPadre = txtApPaternoPadre.Text.Trim();
            objBE.Apellido_MaternoPadre = txtApMaternoPadre.Text.Trim();
            objBE.Nombres_Padre = txtNombresPadre.Text.Trim();
            objBE.Ocupacion_Padre = txtOcupación.Text.Trim();
            objBE.Telefono_Padre = txtTelefonoPadre.Text.Trim();
            objBE.Apellido_PaternoMadre = txtApPaternoMadre.Text.Trim();
            objBE.Apellido_MaternoMadre = txtApMaternoMadre.Text.Trim();
            objBE.Nombres_Madre = txtNombresMadre.Text.Trim();
            objBE.Ocupacion_Madre = txtOcupaciónMADRE.Text.Trim();
            objBE.Telefono_Madre = txtTelefonoMadre.Text.Trim();
            objBE.Apellido_PaternoApoderado = txtApPaternoApoderado.Text.Trim();
            objBE.Apelldio_MaternoApoderado = txtApMaternoApoderado.Text.Trim();
            objBE.Nombres_Apoderado = txtNombresApoderado.Text.Trim();
            objBE.Ocupacion_Apoderado = txtOcupaciónApoderado.Text.Trim();
            objBE.Telefono_Apoderado = txtTelefonoApoderado.Text.Trim();
            objBE.Colegio = txtColegio.Text.Trim();
            objBE.Gestion = ddlGestion.SelectedValue;
            objBE.Turno = ddlTurno.SelectedValue;
            objBE.Estudios_Concluidos = Convert.ToBoolean(chkEstudiosConcluidos.Checked);
            objBE.Otros = "";
            objBE.Departamento_Colegio = Convert.ToInt16(ddlDepartamentoColegio.SelectedValue);
            objBE.Provincia_Colegio = Convert.ToInt16(ddlProvincia.SelectedValue);
            objBE.Distrito_Colegio = Convert.ToInt16(ddlDistritoColegio.SelectedValue);
            objBE.Direccion_Colegio = txtDireccionColegio.Text;
            objBE.Id_Especialidad = ddlEspecialidad.SelectedValue;
            objBE.Fecha_Registro = DateTime.Now;
            objBE.Flag_ConfirmacionPre = 0;
            objBE.Tipo_Inscripcion = 2;// Secretaria
            objBE.Departamento_Residencia = Convert.ToInt32(ddlDepartamentoD.SelectedValue);
            objBE.Provincia_Residencia = Convert.ToInt32(ddlProvinciaD.SelectedValue);
            objBE.Distrito_Residencia = Convert.ToInt32(ddlDistritoD.SelectedValue);
            objBE.Modalidad = ddlModalidad.SelectedItem.Text;
            objBE.Observacion = txtObservacion.Text.Trim();
            objBE.Fecha_Inscripcion = DateTime.Now;
            objBE.Usuario_Inscripcion = User.Identity.Name;
            objBE.TipoIngreso = 2;
            objBE.flag_ingreso = 0;
            objBE.Inscripcion = txtInscripcion.Text.Trim();
            objBE.Recibo = txtRecibo.Text.Trim();



            int x = objBL.data_PremaTriculaInserta(objBE);
            lblCodigo.Text = string.Format("{0:0000}", x);




            imprimir();



        }

        void imprimir()
        {
            DataTable dato = new DataTable();

            dato = datosReporte();

            ExportaPDF(dato);


        }

        private DataTable datosReporte()
        {

            DataTable reporte = new DataTable();


            reporte.Columns.Add("Apellido_Paterno");
            reporte.Columns.Add("Apellido_Materno");
            reporte.Columns.Add("Nombres");
            reporte.Columns.Add("Correo");
            reporte.Columns.Add("DNI");
            reporte.Columns.Add("FECHA_NACIMIENTO");
            reporte.Columns.Add("Departamento");
            reporte.Columns.Add("Provincia");
            reporte.Columns.Add("Distrito");
            reporte.Columns.Add("Direccion");
            reporte.Columns.Add("EstadoCivil");
            reporte.Columns.Add("Numero_Hijos");
            reporte.Columns.Add("Telefono_Fijo");
            reporte.Columns.Add("Celular");
            reporte.Columns.Add("Apellido_PaternoPadre");
            reporte.Columns.Add("Apellido_MaternoPadre");
            reporte.Columns.Add("Nombres_Padre");
            reporte.Columns.Add("Ocupacion_Padre");
            reporte.Columns.Add("Telefono_Padre");
            reporte.Columns.Add("Apellido_PaternoMadre");
            reporte.Columns.Add("Apellido_MaternoMadre");
            reporte.Columns.Add("Nombres_Madre");
            reporte.Columns.Add("Ocupacion_Madre");
            reporte.Columns.Add("Telefono_Madre");
            reporte.Columns.Add("Apellido_PaternoApoderado");
            reporte.Columns.Add("Apellido_MaternoApoderado");
            reporte.Columns.Add("Nombres_Apoderado");
            reporte.Columns.Add("Ocupacion_Apoderado");
            reporte.Columns.Add("Telefono_Apoderado");
            reporte.Columns.Add("Colegio");
            reporte.Columns.Add("Gestion");
            reporte.Columns.Add("Turno");
            reporte.Columns.Add("Estudios_Concluidos");
            reporte.Columns.Add("Otros");
            reporte.Columns.Add("Departamento_Colegio");
            reporte.Columns.Add("Provincia_Colegio");
            reporte.Columns.Add("Distrito_Colegio");
            reporte.Columns.Add("Direccion_Colegio");
            reporte.Columns.Add("Especialidad");
            reporte.Columns.Add("Departamento_Residencia");
            reporte.Columns.Add("Provincia_Residencia");
            reporte.Columns.Add("Distrito_Residencia");
            reporte.Columns.Add("Direccion_Residencia");
            reporte.Columns.Add("NroInscripcion");

            DataRow fila = reporte.NewRow();
            fila[0] = txtApPaterno.Text.Trim();
            fila[1] = txtApMaterno.Text.Trim();
            fila[2] = txtNombres.Text.Trim();
            fila[3] = txtEmail.Text.Trim();
            fila[4] = txtDNI.Text.Trim();
            fila[5] = txtFechaNac.Text.Trim();
            fila[6] = ddlDepartamento.SelectedItem.Text;
            fila[7] = ddlProvincia.SelectedItem.Text;
            fila[8] = ddlDistrito.SelectedItem.Text;
            fila[9] = txtDireccionNacimiento.Text.Trim();
            fila[10] = ddlEstadoCivil.SelectedItem.Text;
            fila[11] = ddlNumeroHijos.SelectedValue;
            fila[12] = txtTelefono.Text.Trim();
            fila[13] = txtCelular.Text.Trim();

            fila[14] = txtApPaternoPadre.Text.Trim();
            fila[15] = txtApPaternoMadre.Text.Trim();
            fila[16] = txtApPaternoPadre.Text.Trim() + " " + txtApPaternoMadre.Text.Trim() + " " + txtNombresPadre.Text.Trim();
            fila[17] = txtOcupación.Text.Trim();
            fila[18] = txtTelefonoPadre.Text.Trim();

            fila[19] = txtApPaternoMadre.Text.Trim();
            fila[20] = txtApMaternoMadre.Text.Trim();
            fila[21] = txtApPaternoMadre.Text.Trim() + " " + txtApMaternoMadre.Text.Trim() + " " + txtNombresMadre.Text.Trim();
            fila[22] = txtOcupaciónMADRE.Text.Trim();
            fila[23] = txtTelefonoMadre.Text.Trim();

            fila[24] = txtApPaternoApoderado.Text.Trim();
            fila[25] = txtApMaternoApoderado.Text.Trim();
            fila[26] = txtApPaternoApoderado.Text.Trim() + " " + txtApMaternoApoderado.Text.Trim() + " " + txtNombresApoderado.Text.Trim();
            fila[27] = txtOcupaciónApoderado.Text.Trim();
            fila[28] = txtTelefonoApoderado.Text.Trim();
            fila[29] = txtColegio.Text.Trim();
            fila[30] = ddlGestion.SelectedItem.Text;
            fila[31] = ddlTurno.SelectedItem.Text;

            if (chkEstudiosConcluidos.Checked)
            {
                fila[32] = "Si";
            }

            else

            { fila[32] = "No"; }

            fila[33] = "";
            fila[34] = ddlDepartamentoColegio.SelectedItem.Text;
            fila[35] = ddlProvinciaColegio.SelectedItem.Text;
            fila[36] = ddlDistrito.SelectedItem.Text;
            fila[37] = txtDireccionColegio.Text.Trim();
            fila[38] = ddlEspecialidad.SelectedItem.Text;
            fila[39] = ddlDepartamentoD.SelectedItem.Text;
            fila[40] = ddlProvinciaD.SelectedItem.Text;
            fila[41] = ddlDistritoD.SelectedItem.Text;
            fila[42] = txtDireccionD.Text.Trim();
            fila[43] = lblCodigo.Text.Trim();


            reporte.Rows.Add(fila);

            return reporte;

        }

        void ExportaPDF(DataTable dato)
        {

            dato.TableName = "CentroPre";

            DataSet dsInscripcionPRE = new DataSet();
            dsInscripcionPRE.Tables.Add(dato);

            rptreporte.ResourceName = "rptInscripcionPRE.rpt";

            rptreporte.SetDataSource(dsInscripcionPRE);
            rptreporte.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Response, true, "Ficha Inscripcion");
            rptreporte.Close();

        }



        void llenaDepartamentoDireccion()
        {

            ddlDepartamentoD.DataSource = ListaDepartamento();
            ddlDepartamentoD.DataTextField = "descripcion";
            ddlDepartamentoD.DataValueField = "Id_Departamento";
            ddlDepartamentoD.DataBind();


        }

        void llenaDepartamentoColegio()
        {

            ddlDepartamentoColegio.DataSource = ListaDepartamento();
            ddlDepartamentoColegio.DataTextField = "descripcion";
            ddlDepartamentoColegio.DataValueField = "Id_Departamento";
            ddlDepartamentoColegio.DataBind();


        }
        void llenaDepartamento()
        {

            ddlDepartamento.DataSource = ListaDepartamento();
            ddlDepartamento.DataTextField = "descripcion";
            ddlDepartamento.DataValueField = "Id_Departamento";
            ddlDepartamento.DataBind();
            

        }


        void llenaProvinciaDireccion()
        {


            ddlProvinciaD.DataSource = ListaProvincia3();
            ddlProvinciaD.DataTextField = "descripcion";
            ddlProvinciaD.DataValueField = "Id_Provincia";
            ddlProvinciaD.DataBind();
        }


        void llenaProvinciaColegio()
        {


            ddlProvinciaColegio.DataSource = ListaProvincia2();
            ddlProvinciaColegio.DataTextField = "descripcion";
            ddlProvinciaColegio.DataValueField = "Id_Provincia";
            ddlProvinciaColegio.DataBind();

        }
        void llenaProvincia()
        {

            ddlProvincia.DataSource = ListaProvincia();
            ddlProvincia.DataTextField = "descripcion";
            ddlProvincia.DataValueField = "Id_Provincia";
            ddlProvincia.DataBind();


        }

        protected void ddlDepartamento_SelectedIndexChanged(object sender, EventArgs e)
        {
         
            llenaProvincia();
            llenaDistrito();
            ddlProvincia.Focus();
        }

        protected void ddlProvincia_SelectedIndexChanged(object sender, EventArgs e)
        {
            llenaDistrito();
            ddlDistrito.Focus();
        }

        protected void ddlDistrito_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        protected void ddlDepartamentoD_SelectedIndexChanged(object sender, EventArgs e)
        {
            llenaProvinciaDireccion();
            llenaDistritoDireccion();
            ddlProvinciaD.Focus();
        }

        protected void ddlProvinciaD_SelectedIndexChanged(object sender, EventArgs e)
        {
            llenaDistritoDireccion();
            ddlDistritoD.Focus();
        }

        protected void ddlDepartamentoColegio_SelectedIndexChanged(object sender, EventArgs e)
        {
            llenaProvinciaColegio();
            llenaDistritoColegio();
            ddlProvinciaColegio.Focus();
        }

        protected void ddlProvinciaColegio_SelectedIndexChanged(object sender, EventArgs e)
        {
            llenaDistritoColegio();
            ddlDistritoColegio.Focus();
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            limpia();
        }

        void limpia()
        {
            txtApMaterno.Text = "";
            txtApMaternoApoderado.Text = "";
            txtApMaternoMadre.Text = "";
            txtApMaternoPadre.Text = "";
            txtApPaterno.Text = "";
            txtApPaternoApoderado.Text = "";
            txtApPaternoMadre.Text = "";
            txtApPaternoPadre.Text = "";
            txtCelular.Text = "";
            txtColegio.Text = "";
            txtDireccionColegio.Text = "";
            txtDireccionD.Text = "";
            txtDireccionNacimiento.Text = "";
            txtDNI.Text = "";
            txtEmail.Text = "";
            txtFechaNac.Text = "";
            txtInscripcion.Text = "";
            txtNombres.Text = "";
            txtNombresApoderado.Text = "";
            txtNombresMadre.Text = "";
            txtNombresPadre.Text = "";
            txtObservacion.Text = "";
            txtOcupación.Text = "";
            txtOcupaciónApoderado.Text = "";
            txtOcupaciónMADRE.Text = "";
            txtRecibo.Text = "";
            txtTelefono.Text = "";
            txtTelefonoApoderado.Text = "";
            txtTelefonoMadre.Text = "";
            txtTelefonoPadre.Text = "";
            
            


        }

       

       

       
    }
}